<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>正则语法</title>
<style type="text/css">
::-webkit-scrollbar{width: 10px;border:1px solid #ddd;}
/* 滚动条的滑轨背景颜色 */
::-webkit-scrollbar-track {
	background-color: #f5f5f5;
} 
/* 滑块颜色 */
::-webkit-scrollbar-thumb {
	background-color: #333;
} 
 /* 滑轨两头的按钮颜色 */
::-webkit-scrollbar-button {
	background-color: #666;
}
/* 横向滚动条和纵向滚动条相交处尖角的颜色 */
::-webkit-scrollbar-corner {
	background-color: black;
}
*{margin:0;padding:0;}
body,h5{font-size:12px;color:#444;font-family:"Microsoft YaHei","Segoe UI","Helvetica Neue","sans-serif";}
body{line-height:24px;}
ul{padding-left:10px;padding-right:5px;margin:10px 0 10px 5px;}
</style>
</head>
<body>
	<h5>普通字符</h5>
	<ul>
	<li>[ABC]&nbsp;匹配 [...] 中的所有字符。</li>
	<li>[^aou]&nbsp;匹配除了aou这几个字母以外的任意字符。</li>
	<li>[A-Z]&nbsp;表示一个区间，匹配所有大写字母，[a-z] 表示所有小写字母。</li>
	<li>\w&nbsp;匹配字母或数字或下划线。等价于[A-Za-z0-9_]</li>
	</ul>
	<h5>非打印字符</h5>
	<ul>
	<li>\W&nbsp;匹配任意不是字母，数字，下划线，汉字的字符。</li>
	<li>\s&nbsp;匹配任意的空白符。</li>
	<li>\S&nbsp;匹配任意不是空白符的字符。等价于[^\f\n\r\t\v]。 [\s\S]可匹配所有字符。</li>
	<li>\d&nbsp;匹配数字。等价于[0-9]</li>
	<li>\D&nbsp;匹配任意非数字的字符。</li>
	<li>\b&nbsp;匹配单词的开始或结束。</li>
	<li>\B&nbsp;匹配不是单词开头或结束的位置。</li>
	<li>^&nbsp;匹配字符串的开始。</li>
	<li>$&nbsp;匹配字符串的结束。</li>
	<li>非打印字符还有:\n换行 \t制表符 \v垂直制表符 \f换页符。</li>
	</ul>
	<h5>特殊字符:</h5>
	<ul>
	<li>.&nbsp;匹配除换行符\n以外的任意字符。</li>
	<li>|&nbsp;指明两项之间的一个选择,即或关系。</li>
	<li>^&nbsp;匹配字符串的开始位置,除非在方括号表达式中使用。</li>
	<li>$&nbsp;匹配字符串的结尾位置,如果设置了正则对象的Multiline属性，$也匹配'\n'或'\r'。</li>
	<li>()&nbsp;标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。</li>
	<li>\&nbsp;转义字符。要匹配特殊字符时应使用转义符,如:匹配 * 用 \*</li>
	</ul>
	<h5>限定符:</h5>
	<ul>
	<li>*&nbsp;匹配前面的子表达式零次或多次。如:zo*b 能匹配 zb、zob、zoob。* 等价于{0,}。</li>
	<li>+&nbsp;匹配前面的子表达式一次或多次。如:zo+b，可以匹配 zob、zoob、zoooob。</li>
	<li>?&nbsp;匹配前面的子表达式零次或一次。</li>
	<li>{n}&nbsp;匹配前面的子表达式n次。</li>
	<li>{n,}&nbsp;匹配前面的子表达式n+次。</li>
	<li>{n,m}&nbsp;匹配前面的子表达式n到m次。</li>
	</ul>
	<h5>?=、?&lt;=、?!、?&lt;! 的使用</h5>
	<ul>
		<li>exp1(?=exp2)：查找 exp2 前面的 exp1。 如:表达式jflame(?=[\d+]),内容my jflame123 is goods,匹配结果:jflame</li>
		<li>(?<=exp2)exp1：查找 exp2 后面的 exp1。</li>
		<li>exp1(?!exp2)：查找后面不是 exp2 的 exp1。</li>
		<li>(?<!exp2)exp1：查找前面不是 exp2 的 exp1。</li>
	</ul>
	
</body>
</html>